﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="GroupView.cs" company="saramgsilva">
//   Copyright (c) 2012 saramgsilva. All rights reserved.
// </copyright>
// <summary>
//   Defines the group for helps to binding with the view when is needed to group data
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace Netflix.PortableClassLibrary.Model
{
    using System.Collections.Generic;

    using GalaSoft.MvvmLight;

    /// <summary>
    /// Defines the group for helps to binding with the view when is needed to group data
    /// </summary>
    public class GroupView : ObservableObject
    {
        /// <summary>
        /// The id.
        /// </summary>
        private string _id;

        /// <summary>
        /// The label.
        /// </summary>
        private string _label;

        /// <summary>
        /// Initializes a new instance of the <see cref="GroupView"/> class.
        /// </summary>
        public GroupView()
        {
            Items = new List<ItemView>();
        }

        /// <summary>
        /// Gets or sets the id.
        /// </summary>
        /// <value>
        /// The id.
        /// </value>
        public string Id
        {
            get
            {
                return this._id;
            }

            set
            {
                Set(ref _id, value);
            }
        }

        /// <summary>
        /// Gets the items.
        /// </summary>
        /// <value>
        /// The items.
        /// </value>
        public IList<ItemView> Items 
        { 
            get; 
            private set; 
        }

        /// <summary>
        /// Gets or sets the label.
        /// </summary>
        /// <value>
        /// The label.
        /// </value>
        public string Label
        {
            get
            {
                return this._label;
            }

            set
            {
                Set(ref _label, value);
            }
        }
    }
}